'use strict';
// 引入格式化时间模块
const sd = require('silly-datetime');
const Controller = require('egg').Controller;
class OrderController extends Controller {

  // 创建订单
  async create() {
    const { ctx } = this;
    // 1获取数据
    const user_id = ctx.state.user.id;
    const { goods_id, shop_id } = ctx.request.body;
    const order_number = sd.format(new Date(), 'YYYYMMDD') + shop_id + user_id + goods_id + Date.now();
    //  TODO: 2验证数据 数据验证未添加
    //  3操作数据库
    const res = await ctx.service.admin.mallOrder.createOrder({ order_number, ...ctx.request.body, user_id });
    res ? ctx.helper.success('生成订单成功', res) : ctx.helper.error('生成订单失败', 500);
  }

  // 获取订单列表
  async index() {
    const { ctx } = this;
    ctx.request.query.pageNum = ctx.request.query.pageNum ? ctx.request.query.pageNum : 1;
    ctx.request.query.pageSize = ctx.request.query.pageSize ? ctx.request.query.pageSize : 10;
    const res = await ctx.service.admin.mallOrder.get(ctx.request.query);
    res ? ctx.helper.success('获取订单列表成功', res) : ctx.helper.error('获取订单列表失败', 400);
  }

  // 删除
  async destroy() {
    const { ctx } = this;
    if (!ctx.request.body.ids) return ctx.helper.error('请选择要删除的选中项');
    const res = await ctx.service.admin.mallOrder.del(ctx.request.body);
    res ? ctx.helper.success('删除订单成功') : ctx.helper.error('删除订单失败');
  }

  // 更新订单状态
  async update() {
    const { ctx } = this;
    const id = ctx.params.id;
    const status = ctx.request.body.status;
    const res = await ctx.service.admin.mallOrder.update(id, status);
    res ? ctx.helper.success('更新订单状态成功', res) : ctx.helper.error('更新订单状态失败', 400);
  }


}

module.exports = OrderController;
